core of the rspirv project
The core crate of the rspirv project providing APIs for processing SPIR-V modules:
- The whole SPIR-V grammar (instruction layouts and their operands)
- A data representation of SPIR-V modules and its loader and builder
- A structured representation of SPIR-V modules (under developing)
- SPIR-V binary module decoding and parsing functionalities
- A lifting infrastructure for converting data representation into structured representation.
This crate defines a common SPIR-V data representation (DR) as the medium for various purposes. It also provides a builder to build the DR interactively and a parser to parse a given SPIR-V binary module into its DR. The parser handles decoding and parsing of SPIR-V binary modules according to the grammar, the parsed instructions are sent to the consumer.
The data representation, as the name shows, focuses on presenting the data within a SPIR-V module; a higher level structured representation is currently under developing.
Usage
First add to your Cargo.toml
:
[]
= "0.7"
Then add to your crate root:
extern crate rspirv;
Examples
Please see the documentation and project's README for examples.